Multithreaded Code from Synchronous Programs: Generating Software Pipelines for OpenMP

نویسندگان

  • Daniel Baudisch
  • Jens Brandt
  • Klaus Schneider
چکیده

In this paper, we describe an automatic synthesis procedure that translates synchronous programs to software pipelines, i.e. to multithreaded software systems whose sequential threads form single stages of a pipeline which are connected by FIFO buffers. The single-loop form that is required for pipelining is thereby already given by a pre-processing step that translates the synchronous programs to synchronous guarded actions. These synchronous guarded actions are analyzed in terms of their data-dependencies to define legal partitions into pipeline stages. Given such a legal partitioning into pipeline stages, the presented synthesis procedure automatically identifies potential pipeline conflicts and implements code for forwarding (if possible) while stalling is implicitly given by the FIFO buffers. Finally, the sequential threads for the conflict-free pipeline stages are implemented in OpenMP-based C-code. We demonstrate the usefulness of our approach by some preliminary experimental results.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Optimization and Scaling of Multiple Sequence Alignment Software ClustalW on Intel Xeon Phi

This work is aimed to investigate and to improve the performance of multiple sequence alignment software ClustalW on the test platform EURORA at CINECA, for the case study of the influenza virus sequences. The objective is code optimization, porting, scaling and performance evaluation of parallel multiple sequence alignment software ClustalW for Intel Xeon Phi (the MIC architecture). For this p...

متن کامل

Design of OpenMP Compiler for an SMP Cluster

In this paper, we present a design of OpenMP compiler for an SMP cluster. Although clusters of SMPs are expected to be one of the cost-e ective parallel computing platforms, both of inter and intra node parallelism must be exploited to achieve high performance. These two levels of structure complicate parallel programming. The OpenMP is an emerging standard for parallel programming on shared-me...

متن کامل

Practical Compiler Techniques on Efficient Multithreaded Code Generation for OpenMP Programs

State-of-the-art multiprocessor systems pose several difficulties: (i) the user has to parallelize the existing serial code; (ii) explicitly threaded programs using a thread library are not portable; (iii) writing efficient multi-threaded programs requires intimate knowledge of machine’s architecture and micro-architecture. Thus, well-tuned parallelizing compilers are in high demand to leverage...

متن کامل

Improving Scalability of OpenMP Applications on MultiCore Systems

Modern multicore architectures have become popular because of the limitations of deep pipelines and heating and power concerns. Some of these multicore architectures such as the Intel Xeon have the ability to run several threads on a single core. The OpenMP standard for compiler directive based shared memory programming allows the developer an easy path to writing multithreaded programs and is ...

متن کامل

Towards optimisation of MP codes for ..

In this paper, we present the compiler transformation of OpenMP code to an ordered collection of tasks, and the compile time as well as runtime mapping of the resulting task graph to threads for data reuse. The ordering of tasks is relaxed where possible so that the code may be executed in a more loosely synchronous fashion. Our current implementation uses a runtime system that permits tasks to...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010